Hey Jainesh,
the problem is in the following lines:
graph.add_edge("node_3", "node_4") graph.add_edge("node_3", "node_5") graph.add_edge("node_3", "node_6") graph.add_conditional_edges("node_3", condition_node3) graph.add_edge("node_4",END) graph.add_edge("node_5", END) graph.add_edge("node_6", END)
After node_3 you always enter node_4, node_5 and node_6 in parallel as they are all connected via an edge to node_3. Afterwards, you have an extra conditional edge to all 3 nodes, which explains the decision of node 4. If you delete the first quoted 3 lines you should get your desired results.
Best regards.