I want to populate multiple projection for an event, can I use multiple handlers for a single event to maintain single-responsibility-principle?
is it a good practice?
Yes, that would be a good idea. You would have a seperate event processor, processing group and token store for each. This way you can easily rebuild one projection without affecting the other. Also, when there is an exception in the handling of one, the other stays unaffected.