Hi Nikhil:
I searched for a solution to this for a very long time. I never did find a solution. However I also learned I really did not need this for my .hddimg.
For early development booting from a USB stick, I simply used a WIC image partitioned in the way that I wanted my target's flash to be partitioned. I referenced this thread for the clues I needed to create the partitions I needed on the wic image.
https://stackoverflow.com/questions/56187209/yocto-create-and-populate-a-separate-home-partition
Of course on the WIC boot menu, there is no install option, so that doesn't quite get you to a standalone target running from internal storage.
Then I figured out that if I only use the .hddimage for installation to internal storage rather than for operation, you can modify (by using a bbappend) the installation script to create the partitions you want during installation.
For us that script was located at meta/recipes-core/initrdscripts/files/init-install-efi.sh . Its actually unusually well commented so you can probably follow along after a few re-reads and understand what it is doing.
Getting a software update scheme working (that's a whole other subject) while you are still working on the wic image will allow you to basically install from the .hddimg once (or whenever you trash your target drive :) ) and then use your update scheme to install a new image, and skip the USB stick step altogether.
Sorry to be so wordy, but hope this helps.
Howard