Persian absolutely has a "p" (پ) of course, but when Arabic words enter Persian vocabulary, the "f" (ف) tends to remain, to the point that some there are native Persian words whose "p" has become an "f" due to Arabic influence. پارس / پارسی (pārs / pārsi), "Persia / Persian", became فارس / فارسی (fārs / fārsi); پیل (pil), "elephant", became فیل (fil); سپید (sepid), "white", became سفید (sefid); اصپهان (espahān), the city of Isfahan, became اسفهان (esfahān); پیروز (piruz), "victor", became فیروز (firuz); etc. Nowadays you will hear many people, groups, and institutions who try to bring back the "p" in these words, but while the "p" version is not considered a misspelling, in general the "f" version is still considered standard.
As for Palestine, we use a "p" in several European languages because Latin took the word from Greek which took it from Hebrew which, at the time (two thousand years ago), pronounced it with a "p".
But Arabic's "p" morphed into a "f" a really long time ago, so by the time Arabic spread and influenced many other languages (most of which have a "p" in their phonology), the Arabic word for Palestine was filasṭīn and remained pronounced that way in languages that borrowed it (such as in Persian, Turkish, Kurdish, and even Modern Hebrew).