The speed of the canoe at resting stream is 7 MPH.
The stream speed is 3 MPH and since the canoe is going upstream the effective velocity it has is 7 - 3 = 4 MPH.
Now after he started paddling the bobber started coming towards the canoe from 14 miles away at the speed of the stream ie., 3 MPH.
To simplify the situation we can add the velocity of the bobber to that of the effective velocity of the canoe which is 4MPH making its velocity equal to 7 MPH and the velocity bobber can be reduced to 0 MPH. This simplification is valid because in both the cases the relative velocity between the 2 is the same but the simplified case has the added benefit of simple calculations.
Now since effective velocity of the canoe is 7 MPH and the distance to bobber is 14 miles, the time taken will be
14/7 = 2 hours.