There is a specific difference which when we read it twice might make more sense.
-p - Automatically repair the file system without any questions.
-y - Assume an answer of `yes' to all questions.
fsck -p will try to fix the file system automatically without any user intervention. It is most likely to take decisions such as yes or no by itself.
fsck -y will just assume yes for all questions.
An example can be thought like,
If some changes need to be made in a partition,
fsck -y will just go ahead and assume yes and make the changes.
fsck -p will take the correct decision which can be either yes or no.