Ball redirects late with bounce

After the ball hits the paddle it continues for a frame or two in the physics, reflected direction, then my onCollisionEnter2D function runs and changes the velocity. At least, that’s what it seems like. I’m a noob with Unity so I must be misunderstanding something.

ac2gg
Here is my OnCollisionEnter2D function:

if (other.gameObject.CompareTag("Paddle"))
        {
            float dist = ballRb.transform.position.x - paddleRb.transform.position.x;

            if (dist > 0)
            {
                print("right");
                ballRb.velocity = new Vector2(4, speedY);
            }
            else
            {
                print("left");
                ballRb.velocity = new Vector2(-4, speedY);
            }
        }

Anyone?