Replication on a clustered Instance
Replication doesn't care about or interact with clustering.

Replication is set up from SQL instance to SQL instance, the physical host that the instance happens to be running on at that moment isn't relevant.

If a failover occurs, a momentary interruption in replication will be experienced as the instance goes offline, but will resume once SQL comes up on the other host.


  If yes then is it mandatory to have a 3 separate Instances for Distributor, Publisher and lastly Subscriber?


What? No.

You can have a single SQL instance be the distributor, publisher, AND subscriber if you want to. (Not common, but possible to push changes from one database to another on the same host.)

A more typical configuration is to have two SQL instances (a publisher/distributor and a subscriber). 

But all of those business decisions are completely independent of clustering.