http://www.righto.com/2014/02/bitcoins-hard-way-using-raw-bitcoin.html explains manually signing a transaction, and helped me alot (next to the online readable book "Mastering Bitcoin" from Andreas). Looking at the example tx from before: https://blockchain.info/rawtx/e46a88ed211c1ee7f34f0f4828611da52404c3282416ae1e3b7096f9dddc6c4e?format=hex
one can see the sigscript in this section:
483045022100B8E264B50017806D4095740E5523188C78884DCFCBA3AA7C1E608F28A1A763AF0220159680F7870BE5B46B6CD3110629AEAB221E6D658DD396AE319B071E0D2B339601210214A307355361CC5571154EEBA68E7F4799F5520656E1AA6BA5E80BA65C6AA190
when decomposing, it looks like this:
48: OP_DATA_0x48: push hex 48 (decimal 72) bytes on stack
30: OP_SEQUENCE_0x30: type tag indicating SEQUENCE, begin sigscript
45: OP_LENGTH_0x44: length of R + S
02: OP_INT_0x02: type tag INTEGER indicating length
21: OP_LENGTH_0x20: this is SIG R (33 Bytes)
00B8E264B5001780:6D4095740E552318
8C78884DCFCBA3AA:7C1E608F28A1A763
AF
02: OP_INT_0x02: type tag INTEGER indicating length
20: OP_LENGTH_0x20: this is SIG S (32 Bytes)
159680F7870BE5B4:6B6CD3110629AEAB
221E6D658DD396AE:319B071E0D2B3396
01: OP_SIGHASHALL: this terminates the ECDSA signature (ASN1-DER structure)
21: OP_DATA_0x21: length compressed Public Key (X9.63 form, 33 Bytes)
0214A307355361CC:5571154EEBA68E7F
4799F5520656E1AA:6BA5E80BA65C6AA1
90
This last line(s) after OP_DATA_0x21 is the pubkey, which allows to verify the signature. The corresponding bitcoin address is: 1FNtjbmxmGyt3MvHpWjhoR4ztTabUox3vp.
This whole structure is part of the "input" of a transaction. It shows that the owner had the right priv key to sign the tx, so he is allowed to spend the funds. Now the specification "Pay 2 Public Key Hash" is output related, aka "where shall the funds go to". And this is part of the output structure in this transaction. This string:
76A914E1315C0FA59687EF4E035C184151CFCB096BE4EE88AC
can be decomposed to this:
76: OP_DUP
A9: OP_HASH160
14: OP_Data14 (= decimal 20)
E1315C0FA59687EF:4E035C184151CFCB
096BE4EE
88: OP_EQUALVERIFY
AC: OP_CHECKSIG
This is a P2PKH script
which contains after the OP_DATA_14 the public key hash. You can base58check encode this value, which returns this bitcoin address: 1MXiAjDmJzySYm6Re6vV3WgSP7rVc57LMh
So coming back to your question ("How it is possible to validate existing Pay to Public Key Hash transaction without public key?"):
I think it is phrased in a way, that doesn't fit into the logic of bitcoin. You have to prove with the signature, that you are able to spend the funds, and this is done in the input part of the tx. And yes, therefor you need the pubkey, and this pubkey is usually appended after the signature.
The wording "p2pkh tx" specifies an output related way of spending the funds. You could also spend to a multisig, or even to a smart contract tx. This doesn't change the rules of the input/signature/pubkey part.