Hola. Vamos a ver si nos podemos explicar.
Tienes la función multiplicar(PU,VOL,IMP) la cual recibe 3 parámetros, por consiguiente cuando se llama la función se le deben pasar 3 parámetros y en el input con Id="PU'.$cont2..'" le estas pasando solo un parámetro. Por otra parte la función getElementById lleva comillas simples, ejemplo document.getElementById('PU').value; y en un evento de un input solo puedes pasar su propio valor, por lo que en el evento onChange del input con Id="VOL'.$cont2.'" no puedes pasar el valor de otro input. Lo correcto es: De la parte de php no te sé decir si estas escribiendo bien el código.
function multiplicar(cont) { //Pasas el valor varible, que es el contador <span class="codigo">
eval("var m1 = document.getElementById('PU"+cont+"').value") // Realizas una evaluación del contenido ya que tiene un valor variable
eval("var m2 = document.getElementById('VOL"+cont+"').value"); // Observa que el valor del id a buscar tiene que ir entre comillas simples
var r = m1*m2;
eval("document.getElementById('IMP"+cont+"').value = r");
} </span> Trata de colocar la palabra reversaba var cuando creas una nueva variable, te puede evitar muchos dolores de cabeza cuando manejas varios script.
Espero haberte ayudado.