Touchscreen Movement on buttons

I am building a game on android (clone of space invaders 2D). So the ship has to move only left and right in 2D. I don’t want to use a joystick, I want buttons for better phone experience. This is my moving algorithm for the same game, PC version. Please help, I couldn’t find anything useful on internet that works for me. How can I implement touchscreen button control on this?

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

public class Spaceship : MonoBehaviour
{
    public float speed = 30;

    public GameObject theBullet;

    void FixedUpdate()
    {
        float horzMove = Input.GetAxisRaw("Horizontal");

        GetComponent<Rigidbody2D>().velocity = new Vector2(horzMove, 0) * speed; 
    }


    // Update is called once per frame
    void Update()
    {
        if(Input.GetButtonDown("SpaceShipShoot"))
        {
            Instantiate(theBullet, transform.position, Quaternion.identity);

            soundManager.Instance.playOneShot(soundManager.Instance.BulletFire);
        }
    }
}

Well first of all, i wouldnt want to be getting the Rigidbody2D every frame as thats quite unnecessary and not very CPU mobile friendly. Secondly, you can have two public functions, one for moving left and right, which happen on button press. For example:

    Rigidbody2D rb2D;
    public float speed = 30f;

    private void Start()
    {
        rb2D = GetComponent<Rigidbody2D>();
    }

    public void MoveLeft()
    {
        rb2D.velocity = new Vector2(-1, 0) * speed;
    }

    public void MoveRight()
    {
        rb2D.velocity = new Vector2(1, 0) * speed;
    }

@TheNucleaLion (im assuming youve worked with UI Buttons before, right?)