Olá mazoni,
Em pascal, quando você tem um IF com mais de uma linha de comandos, usa-se begin e end. Por exemplo, no teu programa, onde aparece:
if(P2 > P3) then
write(N2 + 'pesa' + P2);
write(N3 + 'pesa' + P3);
else
write(N3 + 'pesa' + P3);
write(N2 + 'pesa' + P2);
end;
ficaria:
if(P2 > P3) then
begin
write(N2 + 'pesa' + P2);
write(N3 + 'pesa' + P3);
end
else
begin
write(N3 + 'pesa' + P3);
write(N2 + 'pesa' + P2);
end;
Lembrando que o último end usa ponto-e-vírgula. Corrija isso em todos os seus IF's onde existam mais de um comando sendo executado para a mesma condição.
E mais, tem um begin em excesso, pelo que vejo:
readln(P3);
begin
if (P1 > P2) and (P1 > P3) then
Para ter certeza, verifique se todo end tem seu begin e que não sobram nem begin's e nem end's.