Let's first establish that Pashto is a unique language. While it is closely related to Farsi, Dari, and Tajik (all of these are part of the greater "Persian" language, but we'll get to this later), it is not mutually intelligible. Your friends speak Pashto because there are so many Pashtuns in Pakistan (especially in the NW Frontier Provinces and Khyber-Pakhtunkhwa).
The relationship between Farsi, Dari, and Tajik (though you didn't mention it, it's relevant to the question) is a bit nebulous. All three are considered forms of the Persian Language (I tend to only use the term "Persian" to refer to the language in its broadest sense, while some use it to refer to the language of Iran specifically), and are mutually intelligible to a great extent. As you know, Persian language and culture has had a great influence on Pakistan (and India, for that matter), leading to the use of so many Persian words in Urdu. There are plenty of Persian-derived words in Hindi too, though most of them were filtered through Urdu.
There is some debate as to whether Farsi, Dari, and Tajik are actually three distinct languages, or just dialects of a larger language (Persian). They're generally classed as individual languages, if solely for political reasons. Just like with Hindi and Urdu (and, to a lesser extent, Bihari), the differences between the three are mostly superficial lexical deviations, and the fact that Tajik is customarily written in the Cyrillic alphabet. The grammatical structures and morphology, however, are nearly identical across the three languages, and a speaker of one is likely to understand a speaker of one of the other two, though he probably wouldn't be able to replicate the language too effectively.
One of the other issues regarding the difference between Farsi and Persian on a grander scale is purely political. As you may know, in the 1930's, Reza Shah Pahlavi requested that western governments stop referring to he country now called Iran as "Persia", since that is a foreign word, derived from Greek, whereas the word "Iran" is actually of Persian origin. Like Iran, "Farsi" is the native Persian equivalent of the Greek-derived name westerners tended (and still tend to) use for the language. I prefer to use the word "Farsi" to refer specifically to the form of Persian spoken in Iran (and this is probably the most correct way of using it-- people in Afghanistan and Tajikistan certainly do not speak "Farsi"), just as I would not use Dari to refer to the Persian spoken in Tajikistan, or Tajik to refer to Iranian Persian. It's alright to think of these three terms as names for different dialects of the Persian language, as their status as separate languages is very much political in nature.
The difference can be quite confusing, but just know that Dari, Farsi, and Tajik are essentially the same language ("Persian") and that the different names are generally used due to political reasons. It certainly can't be said that you're wrong in thinking that they are the same thing.