The '&' means 'pass by reference'.
Normally when you pass a variable to a function, you are really passing a copy of that variable.
That means that if the function changes the value of that var, only that copy changes. The original that you used to pass to the function doesn't change.
With 'pass by reference' you are not passing a copy of the value, but instead you are passing a 'reference' to that variable.
If the function changes the value of a var 'passed by reference' it will change the value of the var that is referenced.
In this case, the &$p2 and &$p3 in the function will reference (point to) whatever var you put in when you call the function.
Note: referencing is not just for functions, you can do a lot of fun things with them, like making an reference to an element in a three-dimentional array:
$sName = &$aMyArray[0][546]['name'];
changing the value of $sName will change the value of $aMyArray[0][546]['name']