Instantiate only works once

For some reason whenever I Instantiate, I can only instantiate once per build/run/game. I’ve tried to see if it was that I could only use different prefabs, but that isn’t it. Please help, I’ve been trying to find an answer but no one seems to have the same problem. Thanks for reading this.

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

public class CreatePipe : MonoBehaviour
{
    public GameObject Pipe;
    public bool yes = false;
    // Start is called before the first frame update
    void Start()
    {
        StartCoroutine("initializationn");
        Debug.Log("started");
    }

    // Update is called once per frame
    void Update()
    {
        // if (yes){
        //     inst();
        //     yes = false;
        // }
        
    }

    public IEnumerator initializationn()
    {
        
        Debug.Log("started");
        inst();
        // yes = true;
        yield return new WaitForSeconds(3);
        inst();
        // yes = true;
        yield return new WaitForSeconds(3);
        inst();
        // yes = true;
        yield return new WaitForSeconds(3);

        // while (true){
        //     inst()
        //     yield return new WaitForSeconds(3);
        // }
    
    }
    public void inst(){
        Debug.Log("in");
        var g  = Instantiate(Pipe, new Vector3(7f, Random.Range(-6.5f,0f), 0f), Quaternion.identity);
        g.SetActive(true);
        g.name = "Pipe";
    }
    
}

@LeeLime5000 Replace your coroutine with this StartCoroutine(initializationn());