Objects don't move smoothly, they actually move in little jumps every frame. Also, one object can be at X = 100, and another can be at X = 100.000000001, and those are not equal, so the chances the event is true is almost impossible.
You probably want an event something like
+ Sprite2.X < Sprite1.X ("sprite2 is to left of sprite1")
+ Trigger once ("only do this once")
-> Spawn sprite3