La afirmación no es correcta. El conjunto de todos los números iracionales es un contraejemplo. Lo que la prueba en el OP demuestra es que cada Abrir es una unión disjunta de un número contable de intervalos abiertos. Esta afirmación y la prueba son correctas.
Actualización 1: He vuelto a mirar la prueba y creo que las objeciones de OP son válidas. La prueba es errónea. De hecho, lo es no sólo porque no podemos cubrir todos los puntos irracionales en $U$ pero tampoco todos los puntos racionales que hay: puede ocurrir que el punto racional que intentamos cubrir sea un punto límite del conjunto ya cubierto. En ese caso el "intervalo máximo" no existe.
Actualización 2 : Parece que las respuestas y comentarios aquí contienen una prueba correcta:
Cualquier subconjunto abierto de $\Bbb R$ es una unión contable de intervalos abiertos disjuntos
Actualización 3 : La prueba en OP se puede salvar si se toma cada vez el intervalo máximo $(p_n-a, p_n +b)$ contenida en $U$ . Ese intervalo no puede intersecarse con ninguno de los intervalos elegidos anteriormente porque esos también eran máximos. De esta manera cubrimos todos los puntos racionales. Entonces, si tomamos un punto irracional, su intervalo máximo debe contener uno de los $p_n$ por lo que debe pertenecer al intervalo máximo de la $p_n$ por lo que ese punto también está cubierto.