Let's look at a larger set of components and how they link up.
import numpy as np
import matplotlib.pylab as plt
import ipywidgets as widgets
slider_mu = widgets.FloatSlider(
    value=5,
    min=0,
    max=10,
    step=0.1,
    description='$$\mu$$'
)
slider_sigma = widgets.FloatSlider(
    value=5,
    min=0,
    max=3,
    step=0.1,
    description='$$\sigma$$'
)
btn = widgets.Button(
    description='Run',
    icon='check'
)
out = widgets.Output()
def on_button_clicked(b):
    with out:
        out.clear_output()
        x1 = np.random.normal(0.0, 1.0, 10_000_000)
        x2 = np.random.normal(slider_mu.value, slider_sigma.value, 10_000_000)
        plt.hist(x1, bins=30, label="standard", alpha=0.6)
        plt.hist(x2, bins=30, label="new", alpha=0.6)
        plt.legend()
        plt.show()
btn.on_click(on_button_clicked)
sliders = widgets.VBox([slider_mu, slider_sigma, btn])
widgets.HBox([sliders, out])
Note how the button-click now listens to a lot of components and
is able to target the out component via the on_button_clicked function.