:P Lo primero es, usa variables mas descriptivas. Yo me perdi viendo tantas variables $c, $r, etc...
 
Lo segundo, estas consultas:
select * from noticias where id=$p[id_noticia]
select * from noticias where id=$p[id_noticia2]
select * from noticias where id=$p[id_noticia3]
Las puedes unificar usando un OR o un IN de MySQL
$var = "{$p['id_noticia']},{$p['id_noticia2']},{$p['id_noticia3']}";
SELECT * FROM noticias WHERE id IN ($var) 
Y lo tercero (y solucion a tu problema): 
 Cita:  <td><div class=\"tituloP\"><?=htmlentities(limpia(".$nota1. "[titulo]))?></div></a>
    Estas usando mal la sintaxis, de hecho ni necesitas comillas:
<td><div class=\"tituloP\"><?=htmlentities(limpia(
$nota1['titulo']))?></div></a> 
El error se repite varias veces.