Blueprints with tasks not in Kestra instance have empty plugins' icons
### Expected Behavior

_No response_

### Actual Behaviour

We should fetch icons from both the Kestra instance (for custom plugins) and the Kestra's API (for non-installed plugins)
![image](https://github.com/kestra-io/kestra/assets/37618489/7848597d-b348-4694-b099-20c8397be284)


### Steps To Reproduce

_No response_

### Environment Information

- Kestra Version:
- Operating System (OS / Docker / Kubernetes):
- Java Version (If not docker):


### Example flow

_No response_
ui/src/stores/api.js ui/src/stores/plugins.js
ui/src/stores/api.js ui/src/stores/plugins.js
diff --git a/ui/src/stores/api.js b/ui/src/stores/api.js
index 87fcaccf7d..2c60405d5f 100644
--- a/ui/src/stores/api.js
+++ b/ui/src/stores/api.js
@@ -42,6 +42,9 @@ export default {
                     counter: counter++,
                 }
             });
+        },
+        pluginIcons(_, __) {
+            return axios.get(API_URL + "/v1/plugins/icons", {})
         }
     },
     mutations: {
diff --git a/ui/src/stores/plugins.js b/ui/src/stores/plugins.js
index fc2f08d1cd..3879176b52 100644
--- a/ui/src/stores/plugins.js
+++ b/ui/src/stores/plugins.js
@@ -1,3 +1,5 @@
+import _merge from "lodash/merge";
+
 export default {
     namespaced: true,
     state: {
@@ -25,7 +27,7 @@ export default {
             }
 
             return this.$http.get(`/api/v1/plugins/${options.cls}`, {params: options}).then(response => {
-                if(options.all === true) {
+                if (options.all === true) {
                     commit("setPluginAllProps", response.data)
                 } else {
                     commit("setPlugin", response.data)
@@ -34,11 +36,15 @@ export default {
             })
         },
         icons({commit}) {
-            return this.$http.get("/api/v1/plugins/icons", {}).then(response => {
-                commit("setIcons", response.data)
+            return Promise.all([
+                this.$http.get("/api/v1/plugins/icons", {}),
+                this.dispatch("api/pluginIcons")
+            ]).then(responses => {
+                const icons = _merge(responses[0].data, responses[1].data);
+                commit("setIcons", icons);
 
-                return response.data;
-            })
+                return icons;
+            });
         },
         loadInputsType({commit}) {
             return this.$http.get(`/api/v1/plugins/inputs`, {}).then(response => {
