O HAproxy não possui funcionalidades incorporadas para verificações de saúde complexas como esta.
Dito isto, o que você pode fazer é escrever uma página rápida e suja nos backends (ou no LB se for mais fácil / melhor), que executa requisições GET em todos os microservices e retorna um dado código de status ou string para um dado resultado; 200, e 'OK' se estiverem todos bem, 503 e "FAILED" caso contrário.
Eu escrevi uma página .NET semelhante para verificar se um determinado serviço está sendo executado no sistema, porque o IIS estava sempre retornando 200, mesmo que o serviço de backup não estivesse em execução.
Como você só tem 3 microservices, ele deve funcionar bem, mas não tanto se você tiver 10 ou centenas.