Arduino MQTT doen't subcribe unless i restart mqtt server

Each MQTT client must connect using a different client name.

 client.connect("David_ESP_3", willTopic, willQoS, willRetain, willMessage);

See this program for an example on generating unique mqtt client names.