Al tener nombres de campos iguales, el problema que resulta es la ambigüedad, por lo que (aprovechando que usas alias) deberás especificar la tabla de cada uno de los campos del Where.
Código:
select SQL_CALC_FOUND_ROWS p.nombre,c.fecha,c.nombre,p.fecha
from tabla1 p , tabla2 c
where p.nombre='pepe' and c.nombre='pepe' and p.edad<'20' and c.edad<'20'
group by p.id
order by p.id desc LIMIT 0,5
Aunque bueno, tendrías 2 veces cada registro