Hola:
Si el nodo existe, solo puede borrarse desde su parentNode, así que una solución infalible no usar el objeto div sino el padre del objeto... pero parece que puede fallar la referencia...
if (p == undefined) alert('nodo inexistente')
else p.parentNode.removeChild(p)
Saludos