Used Multi-Field Bin Tool to separate the states into two groups - one from the west side of the River, one from the east side of the River (not necessary works in all cases with bin tool, but in this case yes). Then via buffer tool we can create a polygon that approximates the River.
Second step is to get the intersected areas between the start & end polygon and the River. Then create a inverse intersection object between the above processed polygon and the River. Lastly, splitting the further processed polygon into the regions will get us the result.