I think this link contains a good proof http://www.math.drexel.edu/~tolya/cantorpairing.pdf
I think the best and elegant way is to show its bijection by algebraic methods.
We need a lemma:
if $ p_{1}+p_{2} < q_{1}+q_{2} $ then $ f(p_{1},p_{2}) < f(q_{1},q_{2}) $
Proof. Let $ k \in N $ be a fixed natural number and let $ p_{1}+p_{2} = k$. Then it's clear that maximum value of $ f(p_{1},p_{2}) $ is $ f(k, 0) $ and minimum value of $ f(p_{1},p_{2}) $ is $ f(0, k) $ . Given that $ p_{1}+p_{2} < q_{1}+q_{2} $, minimum value of $ f(q_{1},q_{2}), \ where \ q_{1}+q_{2} = k+n, for \ n\geq 1, n \in N $ is $f(0,k+1)$. But this value is still greater than $ f(k,0) $ which is maximum value of $ f(p_{1},p_{2})$. Then we're done. By symmetry $ p_{1}+p_{2} > q_{1}+q_{2} $ then $ f(p_{1},p_{2}) > f(q_{1},q_{2}) $ is also true.
So, $ f(p_{1},p_{2}) = f(q_{1},q_{2}) $ implies $ p_{1}+p_{2} = q_{1}+q_{2} $. If we keep in mind for example $ p_{1}+p_{2} = q_{1}+q_{2} = k $ then, we easily see, $p_{1}=q_{1}$ and $p_{2}=q_{2}$ which proves that our function is injective.
With respect to surjectivity, assume $ z \in N$. Think about largest triangular number not greater than z, that is $t_{k} = k*(k+1)/2 $ (you may want to draw the diagonals to get some intuition). Then, $ p_{1} = z - t_{k}$ and $p_{2} = k - p_{1}$ will do, that is, $f(p_{1},p_{2}) = z$. Its absent in the link but, you need to prove that $p_{2} \in N$.
Sincerely