P
Someone helped me on the Postgres community for this one, so answering it here.
The target DB was lacking enough max_logical_replication_workers.
Since I already had 2 subscriptions going and the max_logical_replication_workers on the target DB was set to 2. So when I started the second subscription with copy_data=true, it wasn't able to start the temporary subscription for copying the data from the source. That is why it was stuck in the initialize phase.
To rectify it, I increased the max_logical_replication_workers to 4 on the target DB. This needs a DB restart, so please note, that you will have to restart the receiving database.
And voila! it worked.
targetdb=# show max_logical_replication_workers ;
max_logical_replication_workers
---------------------------------
4
(1 row)
Please see that I was missing this WARNING in the log file.
"WARNING,53400,"out of logical replication worker slots",,"You might need to increase max_logical_replication_workers.",,,,,,,"","logical replication worker"
So please look out for such an error on your log files if you face this error.