I am reading Rudin's Principles of Mathematical Analysis and I have some questions regarding Theorem 2.30 (p.36) about open relative sets.
2.30 Theorem. Suppose $Y \subset X$. A subset $E$ of $Y$ is open relative to $Y$ if and only if $E = Y \cap G$ for some open subset $G$ of $X$.
Proof. Suppose $E$ is open relative to $Y$. To each $p \in E$ there is a positive number $r_p$ such that the conditions $d ( p,q ) < r_p$, $q \in Y$ imply that $q \in E$. Let $V_p$ be the set of all $q \in X$ such that $d ( p,q ) < r_p$, and define $$G = \bigcup_{p \in E} V_p.$$ Then $G$ is an open subset of $X$, by Theorems 2.19 and 2.24.
Since $p \in V_p$ for all $p \in E$, it is clear that $E \subset G \cap Y$.
By our choice of $V_p$, we have $V_p \cap Y \subset E$ for every $p \in E$, so that $G \cap Y \subset E$. Thus $E = G \cap Y$, and one half of the theorem is proved.
Conversely, if $G$ is open in $X$ and $E = G \cap Y$, every $p \in E$ has a neighborhood $V_p \subset G$. Then $V_p \cap Y \subset E$, so that $E$ is open relative to $Y$.
The question is: after Rudin defines $G$, he immediately states that $G$ is open in $X$, by Theorems 2.19 (every neighborhood is an open set) and 2.24 (every union of open sets is an open set). By Theorem 2.24 I know that the union of open sets is still an open set. However, I don't know how Theorem 2.19 applies in this situation and thus implies $V_p$ is open. Because $V_p$ is a set of all $q$, not $p$, if it is the set of all $p$, I know it must be open.
Can somebody please help me explain why $G$ is open? And please be very specific.