every set intersection for every set in a family with another family of sets
Outer[Intersection, p1, p2, 1]
{{{6}}, {{6}}, {{3, 5, 6}}}
From mobile, so not tested
Intersection@@#& /@ Tuples[{p1, p2}]
Update. Another solution, which preserves the inner/outer structure:
Table[Intersection[l1, l2], {l1, p1}, {l2, p2}]