The "P" thing is recent. As in, late 2015. Before that, (almost) all documents were "N" documents.
I don't know the official distinction, but the general idea seems to be this. "N" documents represent revisions of an actual standard produced by the committee (working drafts, etc), as well as procedural items (minutes of meetings, meeting notes etc). They also represent the final standards.
"P" documents represent proposals, hence the "P", I guess. These are things that are being talked about for inclusion in a standard, but are not actually a standard.
"P" documents also have an explicit revision number. Before the "P" system, new versions of an "N" document would get a whole new "N" number. So if you wanted to see what the latest revision of, say, the comparison operator generation proposal, you had to look through the
whole list of proposals until you found the most recent one. And the title sometimes changes, so it is not always obvious what the latest revision is called.
Now, a specific proposal is assigned a "P" number. Updated version of that proposal keeps the same "P" number, but gets an updated revision. So P0057 always refers to the await-style coroutines proposal, but there are 6 versions of that (R0 through R5). If you want to find the most recent version of that, just search backwards for P0057 in the list of proposals.
This also makes the wg21.link system much nicer. If you want the latest revision of P0057, just go to
http://wg21.link/P0057. If you want revision 2, you go to
http://wg21.link/P0057R2.