Maximal $p$-subgroups in nilpotent groups

By using Zorn's Lemma one can establish the existence of maximal $p$-subgroups in any group, even infinite. Using this existence, exactly as in the finite case, it is easy to show that in a nilpotent group the set of $p$-elements form a subgroup (take the normalizer of the normalizer etc.) But then the maximal $p$-subgroup is unique and therefore one should not need to use Zorn's Lemma to prove that the set of $p$-elements in a nilpotent group form a subgroup. In fact there are proofs of this fact that do not use Zorn's Lemma. But none is easy. I am looking for an easy proof, using induction on the nilpotency class for example, or using some commutator calculus. Does anyone have an accessible (by undergraduates) proof of this fact that does not use Zorn's Lemma? Thanks a lot.

It's not too hard if you know Schur's Theorem, which says that, if $G$ is a group with $G/Z(G)$ finite, then $G'$ is finite.
Let's assume that for the moment. We need to prove that, if $a$ and $b$ are $p$-elements for some prime $p$ in a nilpotent group $G$, then so is $ab$. To do that, it is enough to prove that the subgroup $H := \langle a,b \rangle$ is finite, since then we can use the result for finite groups.
We prove that by induction on the nilpotency class of $G$. By induction, we can assume that $H/Z(H)$ is finite, so then $H'$ is finite by Schur's theorem, but $H/H'$ is an abelian group generated by two torsion elements, so $H/H'$ is finite and hence $H$ is finite, as claimed.
Schur's theorem can be proved using the transfer homomorphism $\tau:G \to Z(G)$, as follows. If $|G/Z(G)| = n$, then $\tau(g) = g^n$ for all $g \in G$ and, since $G' \leq {\rm ker}(\tau)$, we have $g^n=1$ for all $g \in G'$. Also, since a commutator $[g,h]$ is determined by the cosets $gZ(G)$ and $hZ(G)$, there are at most $n^2$ distinct commutators in $G$, so $G'$ is finitely generated. So its finite index subgroup $G' \cap Z(G)$ is finitely generated abelian of finite exponent and hence is finite, so $G'$ is finite.
Very nice. Of course... Thanks a lot. In the mean time I found another proof. Let $P$ be the set of prime elements of the group $G$. Let $P_1=P\cap G'$. By induction on the nilpotency class of $G$ we may assume that $P_1 \leq G$. To prove that $P$ is a subgroup I proceed by induction on the nilpotency class of $P_1$. The trick is to divide the group $G$ by $Z(P_1)$, which is of course a normal subgroup of $G$. The inductive step is easy. The initial case where $P_1=1$ is handled as follows: It is easy to show that if $G/Z(G)$ has an element of order $p$, then $G'\cap Z(G)$ has an element of order $p$. Therefore $G/Z(G)$ does not have elements of order $p$, meaning that $P\subseteq Z(G)$. Therefore $P\leq G$. Thanks again.