Proving von Neumann extractor correct
What you need to show is that the output bits are i.i.d. and uniform.

Given there is an output bit, clearly the probability that you output a zero is the same as the probability that you output a one, namely $p(1-p)$ as you indicated. So uniformity is settled.

These bits are also independent since they depend on disjoint subsequences of the input stream, which is itself assumed to be i.i.d, though non uniform.

So all you still need to prove is that bits are output at some nonzero  rate. This rate is $2p(1-p)$ per two input bits and is positive provided $p \in (0,1)$ which is the case of a non degenerate source.