How do i move my main camera by set amount of pixels smoothly in Unity2D?

Now i have it like when i click the button, it moves to the position instantly, i want it to smooth it out.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraMover : MonoBehaviour
{
    public float moveAmount = 19.2f;

    public void ButtonLeft ()
    {
        Camera.main.transform.Translate(moveAmount,0,0);
    }
    public void ButtonRight ()
    {
        Camera.main.transform.Translate(-moveAmount,0,0);
    }
}

One way is using Vector.Lerp().

If you add a new variable to the top of your class, like:

public Vector3 targetPosition;

Then in your button code, instead of translating, set the new variable to where you want the cam to go eg:

targetPosition = Camera.main.transform.position + new Vector3(moveAmount,0,0);

Now in update, you can lerp from the current position, to the target position:

void Update(){
      Camera.main.transform.position = Vector3.Lerp(Camera.main.transform.position,targetPosition,0.01f)
}

Changing the 0.01 will adjust how fast the camera moves.

Some other comments:
Instead of using camera.main you should store the camera object in a variable, as camera.main is quite slow to run.
You should multiply the 0.01 by Delta time to move at a more stable speed.