A slightly different approach
Clear[dominateCount]
dominateCount[points : {_, _} ..] :=
Module[{pairs, dominatePick, pickedPoints},
pairs = Subsets[{points}, {2}];
dominatePick[p1_List, p2_List] := Switch[p1 - p2,
{_?NonNegative, _?NonPositive},
p1, {_?NonPositive, _?NonNegative}, p2,
_, Null];
pickedPoints = dominatePick @@@ pairs;
DeleteCases[
Append[Tally@pickedPoints,
Append[Complement[{points}, pickedPoints], 0]], {Null, _}]
]
dominateCount[p1, p2, p3]
(* {{{5, -2}, 2}, {{4, -1}, 1}, {{1, 5}, 0}} *)